package 集合.TEST;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class test2 {
    /*
    自动点名器
    班里有N个学生，要求：70%的概率徐熬到男生，30%的概率选到女生
    "小明","小庄","李明","梨园春","武林风","汤甲方","吴京");
    "小红","李华","李丽"
     */
    /*
    思路：概率问题可以使用替代方法解决：利用1代表男生，0代表女生，即有7个1,3个0
    将0和1添加到集合当中进行随机抽取，此时概率为70%与30%
    再将男生放到一个集合，女生放到一个集合，抽到一从男生集合随机抽取
    ，抽到0从女生集合随机抽取
     */
    public static void main(String[] args) {

//      创建集合存储
        ArrayList<Integer> list=new ArrayList<>();
//        添加数据
        Collections.addAll(list,1,1,1,1,1,1,1);
        Collections.addAll(list,0,0,0);
/*      随机抽取方法二
        Collections.shuffle(list);
        Integer i = list.get(0);
        System.out.println(i);*/
//        从集合中随机抽取0/1，充当概率
        Random r=new Random();
//        获得索引
        int index = r.nextInt(list.size());
//        获得索引对应的元素(0/1)
        Integer number = list.get(index);
        System.out.println(number);
//        创建男生集合
        ArrayList<String> boylist=new ArrayList<>();
        Collections.addAll(boylist,"小明","小庄","李明","梨园春","武林风","汤甲方","吴京");
//        创建女生集合
        ArrayList<String> girllist=new ArrayList<>();
        Collections.addAll(girllist,"小红","李华","李丽");

//        如果抽到1
        if (number==1){
//            从男生集合随机抽取
//            获得索引
            int boyindex = r.nextInt(boylist.size());
//            获得索引对应的元素
            String s = boylist.get(boyindex);
            System.out.println(s);
        }else {
//            抽到0，从女生集合抽取
            int girlindex = r.nextInt(girllist.size());
            String s = girllist.get(girlindex);
            System.out.println(s);
        }

    }
}
